package com.cxx.purchasecharge.service;

import java.util.List;

import com.cxx.purchasecharge.core.model.persistence.Contact;
import com.cxx.purchasecharge.core.model.persistence.Customer;
import com.cxx.purchasecharge.core.model.persistence.Goods;
import com.cxx.purchasecharge.core.model.persistence.GoodsStorage;
import com.cxx.purchasecharge.core.model.persistence.Order;
import com.cxx.purchasecharge.core.model.persistence.Payment;
import com.cxx.purchasecharge.core.model.persistence.User;
import com.cxx.purchasecharge.service.exception.PcServiceException;

public interface AuditLogService
{
    Customer addCustomer (Customer customer, String operator) throws PcServiceException;

    Customer updateCustomer (Customer customer, String operator) throws PcServiceException;

    void deleteCustomer (Customer customer, String operator) throws PcServiceException;

    Contact addContact (Contact contact, String operator) throws PcServiceException;

    Contact updateContact (Contact contact, String operator) throws PcServiceException;

    void deleteContact (Contact contact, String operator) throws PcServiceException;

    User addUser (User user, String operator) throws PcServiceException;

    User updateUser (User user, String operator) throws PcServiceException;

    void deleteUser (User user, String operator) throws PcServiceException;

    GoodsStorage addStorage (GoodsStorage storage, String operator) throws PcServiceException;

    GoodsStorage updateStorage (GoodsStorage storage, String operator) throws PcServiceException;

    void deleteStorage (GoodsStorage storage, String operator) throws PcServiceException;

    Order addOrder (Order order, String operator) throws PcServiceException;

    Order updateOrder (Order order, String operator) throws PcServiceException;

    void deleteOrder (Order order, String operator) throws PcServiceException;

    Payment addPayment (Payment payment, String operator) throws PcServiceException;

    Payment updatePayment (Payment payment, String operator) throws PcServiceException;

    void deletePayment (Payment payment, String operator) throws PcServiceException;

    Goods addGoods (Goods goods, String operator) throws PcServiceException;

    Goods updateGoods (Goods goods, String operator) throws PcServiceException;

    void deleteGoods (Goods goods, String operator) throws PcServiceException;

    void login (String userId, List <String> authorities) throws PcServiceException;

    void logout (String userId) throws PcServiceException;

    void updateCustomerPay (Customer customer, String operator) throws PcServiceException;
}
